package com.zhang.hadoop.testMain;


import com.fasterxml.jackson.databind.ObjectMapper;
import com.zhang.hadoop.util.BASE64Encoder;
import com.zhang.hadoop.util.Base64;
import jodd.http.HttpRequest;
import jodd.http.HttpResponse;
import jodd.json.JsonParser;
import jodd.json.JsonSerializer;
import org.apache.commons.lang.RandomStringUtils;
import org.springframework.util.StringUtils;

import javax.crypto.*;
import javax.crypto.spec.SecretKeySpec;
import java.io.UnsupportedEncodingException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.IntStream;

/**
 * Created by zhang yufei on 2018/7/3.
 */
public class Module {


    /**
     * 主机厂平台地址
     * 此地址改为系统部署后的映射地址，以下地址位北理工对外地址，可首次测试使用
     */
    public static String ip1 = "http://192.168.1.111:8993";
    //主机厂调用接口令牌，由乙方技术支持提供，且需由甲方提供主机厂全称及统一厂商社会信用代码
    public static String vehicle_token = "C3kNIVJWfOxLkRDydrJXsA4ff6oMaTOP";
    //主机厂调用接口密钥，由乙方技术支持提供
    public static String vehicle_key = "U2TohGfvuck0v5Xa";
    //电池厂调用接口令牌，由乙方技术支持提供，且需由甲方提供电池厂全称及统一厂商社会信用代码
    public static String factory_token = "pOAJJSBmAThb8kPJh4VAX+zs/YAHFqxd";
    //电池厂调用接口密钥，由乙方技术支持提供
    public static String factory_key = "vAREamtPvwanVe2M";

    public static void main(String[] args) {
        long start = System.currentTimeMillis();

        //1.主机厂车辆生产
        //createVehiclePack();
        //2.电池厂电池生产
        //createBatteryPack();
        //3.主机厂车辆销售
        //createSale();
        //4.电池厂售后
        //createReplaceBattery();
        //5.主机厂维修
        //createReplaceRecord();
        //6.电池厂维修
        //createFactoryRepair();
        //7.主机厂回收网点入库
        //createRecoverStorage();
        //8.主机厂回收网点退役
        //createRetireVehicle();
        //9.主机厂车辆换电入库
        //createReplaceBatteryInStorage();
        //10.主机厂车辆换电记录
        //createReplaceReplacement();
        //11.主机厂车辆换电维修
        //createReplaceRepair();
        //12.主机厂车辆换电退役
        //createReplaceRetire();
        //13.电池厂电池退役
//        createRetireFactory();

        test();

        //getBatteryIsImport();
        //getBatteryIsBindingsVIN();

//        String vehicle=encrypt("vehicle","0162ae481a7f411e86b1eadf5cc838eb");
//        System.out.println(vehicle);

//        String s1 = createVehiclePackRandom("vehModelName", 10, 1000, "U2TohGfvuck0v5Xa");
//        System.out.println(s1);


//        String s1 = createChassisRandom("vehModelName", 10, 1, "U2TohGfvuck0v5Xa");
//        System.out.println(s1);
//
//        HttpRequest request = HttpRequest.post(ip1+"/bitnei/v1.0/battery/vehicle/receiveChassis");
//        request.header("Authorization", "Bearer " + vehicle_token);
//        request.header("Content-Type", "application/json; charset=utf-8");
//        request.acceptEncoding("gzip");
//        request.body(s1);
//        HttpResponse response=request.send().unzip().unzip();
//        String result = parsToMap(response, vehicle_key);
//        System.out.println(result);
//        String s3="{\"requestMsg\":\"t\\/8SY8r6hz3LaTi\\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\\/TAoHaTMS3QT8qRtQble4\"}";

//        Map<String,Object> map=new JsonParser().parse(s1);
//        String s2 = decrypt(map.get("requestMsg").toString()
//                , "U2TohGfvuck0v5Xa");
//        System.out.println("解密" + s2);

//        testReplace();

//        String s1="2lyycIotRi1LOqe8H1OtMfyBrPHA1UVs8PkVI2yLvMYshhs1gM27UeF55tJHxsMqbJZvMX2651ezueSh7CQK8Cda0BwTl10uF333thL3X9E3duHXuWB5Vdp1VffjH1b1FnLtsDrf+4FdNB3XWtpS2HNLzKyMjwtrhnyKmAWne8obKHTLSL2ao6KY/HGwZPMS7tBZHDGJUXxWXgF5p+BG5UeSlGeSmN7OjYAR4r9kYGsc723wJKtNSG7e34Dy9wVa+apPp43HAoLSZ6N5R2iqron0x5cwma0+FIhi0l36sXOMBxjWpnY5rbcoLabu7ly4";
//        System.out.println(decrypt(s1,"1CYOhQUXjIRj3TDj"));
//        String s2="{\"vinList\":[{\"vin\":\"LTWA35K12KS000423\",\"vehModelName\":\"ME700001\",\"vehicleName\":\"ME7\",\"offlineProductionTime\":\"2019-12-12 15:47:50\",\"vehicleBrand\":\"me7\",\"packCodeList\":[\"066PEF20039C0S9440000003\"],\"systemCode\":\"\",\"vehicleType\":\"1\"}]} ";
//        System.out.println(encrypt(s2,"1CYOhQUXjIRj3TDj"));
        long end = System.currentTimeMillis();
        System.out.println("完成" + (end - start));
    }

    public static void createVehiclePack() {
        List<String> packList = new ArrayList<>();
        packList.add("P100");
        Map<String, Object> vinMap = new HashMap<>();
        vinMap.put("vin", "123456");
        vinMap.put("vehModelName", "vehModel01");
        vinMap.put("packCodeList", packList);
        vinMap.put("systemCode", "S001");
        vinMap.put("offlineProductionTime", "2018-01-01 00:00:00");
        vinMap.put("vehicleBrand", "奔驰");
        vinMap.put("vehicleName", "奔驰");
        vinMap.put("vehicleType", "1");
        List<Map<String, Object>> vinList = new ArrayList<>();
        vinList.add(vinMap);
        Map<String, Object> vehicleMap = new HashMap<>();
        vehicleMap.put("vinList", vinList);
        HttpResponse response = send(ip1 + "/bitnei/v1.0/battery/vehicle/receiveVehicleProduce", vehicleMap, vehicle_token, vehicle_key);
        String result = parsToMap(response, vehicle_key);
        System.out.println(result);
    }

    public static void createBatteryPack() {
//        List<String> cellList1=new ArrayList<>();
//        cellList1.add("C111");
//        Map<String,Object> module1=new HashMap<>();
//        module1.put("code","M110");
//        module1.put("cellList",cellList1);
//        module1.put("modelId","zhangM");
//        module1.put("cellModelId","zhangC");
//        List<Map<String,Object>> moduleList1=new ArrayList<>();
//        moduleList1.add(module1);
        Map<String, Object> pack1 = new HashMap<>();
        pack1.put("code", "P100");
//        pack1.put("moduleList",moduleList1);
        pack1.put("serial", "1");
        pack1.put("modelId", "1号包");
        pack1.put("systemId", "S001");
        pack1.put("systemModelId", "zhangS");
        pack1.put("orderNo", "o001");
        List<Map<String, Object>> packList = new ArrayList<>();
        packList.add(pack1);
        HttpResponse response = send(ip1 + "/bitnei/v1.0/battery/vehicle/receiveBatteryProduce", packList, factory_token, factory_key);
        String result = parsToMap(response, factory_key);
        System.out.println(result);
    }

    public static void createSale() {
        List<Map<String, Object>> vehicleList = new ArrayList<>();
        Map<String, Object> vehicle = new HashMap<>();
        vehicle.put("vin", "LNBSCB3F0DD130955");
        vehicle.put("licensePlate", "京BZ0418");
        vehicle.put("vehTypeName", "111808");
        vehicle.put("saleTime", "2018-01-05");
        vehicle.put("saleArea", "北京市昌平区");
//        vehicle.put("ownerName", "张君宝");
//        vehicle.put("Idnum","150204197111111810");
        vehicle.put("epname", "吉利汽车");
        vehicle.put("epaddress", "北京市");
        vehicle.put("epcode", "123456789123456789");
        vehicleList.add(vehicle);
        HttpResponse response = send(ip1 + "/bitnei/v1.0/battery/receiveSaleVehicle", vehicleList, vehicle_token, vehicle_key);
        String result = parsToMap(response, vehicle_key);
        System.out.println(result);
    }

    public static void createReplaceBattery() {
        Map<String, Object> cell1 = new HashMap<>();
        cell1.put("code", "C211");
        cell1.put("type", "C");
        List<Map<String, Object>> cellList1 = new ArrayList<>();
        cellList1.add(cell1);
        Map<String, Object> module1 = new HashMap<>();
        module1.put("code", "M210");
        module1.put("childCodeList", cellList1);
        module1.put("modelId", "zhangM");
        module1.put("type", "M");
        List<Map<String, Object>> moduleList1 = new ArrayList<>();
        moduleList1.add(module1);
        Map<String, Object> pack1 = new HashMap<>();
        pack1.put("code", "P200");
        pack1.put("childCodeList", moduleList1);
        pack1.put("modelId", "zhangP");
        pack1.put("type", "P");
        pack1.put("orderCode", "R001");
        List<Map<String, Object>> packList = new ArrayList<>();
        packList.add(pack1);
        HttpResponse response = send(ip1 + "/bitnei/v1.0/battery/sail/receiveReplaceBattery", packList, factory_token, factory_key);
        String result = parsToMap(response, factory_key);
        System.out.println(result);
    }

    public static void createReplaceRecord() {
        List<Map<String, Object>> recordList = new ArrayList<>();
        Map<String, Object> record = new HashMap<>();
        record.put("vin", "LNBSCB3F0DD130955");
        record.put("replaceDate", "2018-01-05");
        record.put("oldCode", "P100");
        record.put("whereaboutsId", "123456789123456789");
        record.put("whereaboutsName", "维修厂");
        record.put("newCode", "P200");
        record.put("batterySpecies", "P");
        recordList.add(record);
        HttpResponse response = send(ip1 + "/bitnei/v1.0/battery/sail/receiveReplaceRecord", recordList, vehicle_token, vehicle_key);
        String result = parsToMap(response, vehicle_key);
        System.out.println(result);
    }

    public static void createFactoryRepair() {
        Map<String, Object> cell1 = new HashMap<>();
        cell1.put("code", "C311");
        cell1.put("type", "C");
        List<Map<String, Object>> cellList1 = new ArrayList<>();
        cellList1.add(cell1);
        Map<String, Object> module1 = new HashMap<>();
        module1.put("code", "M310");
        module1.put("childCodeList", cellList1);
//        module1.put("modelId","zhangM");
        module1.put("type", "M");
        List<Map<String, Object>> moduleList1 = new ArrayList<>();
        moduleList1.add(module1);
        Map<String, Object> pack1 = new HashMap<>();
        pack1.put("code", "P300");
        pack1.put("childCodeList", moduleList1);
//        pack1.put("modelId","zhangP");
        pack1.put("type", "P");
        pack1.put("orderCode", "R001");
        List<Map<String, Object>> repairList = new ArrayList<>();
        Map<String, Object> repair = new HashMap<>();
        repair.put("vin", "LNBSCB3F0DD130955");
        repair.put("replaceDate", "2018-01-05");
        repair.put("oldCode", "P200");
        repair.put("whereaboutsId", "123456789123456789");
        repair.put("whereaboutsName", "维修厂");
        repair.put("newCodeBean", pack1);
        repair.put("batterySpecies", "P");
        repairList.add(repair);
        HttpResponse response = send(ip1 + "/bitnei/v1.0/battery/sail/receiveReplaceOld", repairList, factory_token, factory_key);
        String result = parsToMap(response, factory_key);
        System.out.println(result);
    }

    public static void createRecoverStorage() {
        List<Map<String, Object>> recoverStorageList = new ArrayList<>();
        Map<String, Object> recoverStorage = new HashMap<>();
        recoverStorage.put("storageDate", "2018-01-05");
        recoverStorage.put("recoverUnitCode", "123456789123456789");
        recoverStorage.put("recoverUnitName", "维修厂");
        recoverStorage.put("code", "P400");
        recoverStorage.put("batterySpecies", "P");
        recoverStorageList.add(recoverStorage);
        HttpResponse response = send(ip1 + "/bitnei/v1.0/battery/recover/receiveRecoverStorage", recoverStorageList, vehicle_token, vehicle_key);
        String result = parsToMap(response, vehicle_key);
        System.out.println(result);
    }

    public static void createRetireVehicle() {
        List<Map<String, Object>> retireVehicleList = new ArrayList<>();
        Map<String, Object> retireVehicle = new HashMap<>();
        retireVehicle.put("code", "P400");
        retireVehicle.put("whereaboutsCode", "123456789123412341");
        retireVehicle.put("whereaboutsName", "维修厂");
        retireVehicle.put("retireDate", "2018-01-05");
        retireVehicle.put("batterySpecies", "P");
        retireVehicle.put("retireUnitCode", "123456789123123123");
        retireVehicle.put("retireUnitName", "退役厂商");
        retireVehicle.put("factoryType", "5");
        retireVehicle.put("batteryType", "A");
        retireVehicle.put("batteryWeight", "2.5");
        retireVehicleList.add(retireVehicle);
        HttpResponse response = send(ip1 + "/bitnei/v1.0/battery/sail/receiveRetiredOldVehicle", retireVehicleList, vehicle_token, vehicle_key);
        String result = parsToMap(response, vehicle_key);
        System.out.println(result);
    }

    public static void createReplaceBatteryInStorage() {
        List<String> cellList1 = new ArrayList<>();
        cellList1.add("C511");
        Map<String, Object> module1 = new HashMap<>();
        module1.put("code", "M510");
        module1.put("cellList", cellList1);
        module1.put("cellCodeSize", "1");
        List<Map<String, Object>> moduleList1 = new ArrayList<>();
        moduleList1.add(module1);
        Map<String, Object> pack1 = new HashMap<>();
        pack1.put("code", "P500");
        pack1.put("moduleList", moduleList1);
        pack1.put("replaceUnitCode", "123456789123412342");
        pack1.put("replaceUnitName", "换电厂");

        List<String> cellList2 = new ArrayList<>();
        cellList2.add("C611");
        Map<String, Object> module2 = new HashMap<>();
        module2.put("code", "M610");
        module2.put("cellList", cellList2);
        module2.put("cellCodeSize", "1");
        List<Map<String, Object>> moduleList2 = new ArrayList<>();
        moduleList2.add(module2);
        Map<String, Object> pack2 = new HashMap<>();
        pack2.put("code", "P600");
        pack2.put("moduleList", moduleList2);
        pack2.put("replaceUnitCode", "123456789123412342");
        pack2.put("replaceUnitName", "换电厂");

        List<Map<String, Object>> packList = new ArrayList<>();
        packList.add(pack1);
        packList.add(pack2);

        HttpResponse response = send(ip1 + "/bitnei/v1.0/battery/replaceBattery/batteryInStorage", packList, vehicle_token, vehicle_key);
        String result = parsToMap(response, factory_key);
        System.out.println(result);
    }

    public static void createReplaceReplacement() {
        List<Map<String, Object>> recordList = new ArrayList<>();
        Map<String, Object> record = new HashMap<>();
        record.put("vin", "LNBSCB3F0DD130955");
        record.put("oldCode", "P500");
        record.put("newCode", "P600");
        record.put("replaceUnitCode", "123456789123412342");
        record.put("replaceUnitName", "换电厂");
        record.put("replaceDate", "2018-01-05");
        recordList.add(record);
        HttpResponse response = send(ip1 + "/bitnei/v1.0/battery/replaceBattery/replacementBattery", recordList, vehicle_token, vehicle_key);
        String result = parsToMap(response, vehicle_key);
        System.out.println(result);
    }

    public static void createReplaceRepair() {
        Map<String, Object> cell1 = new HashMap<>();
        cell1.put("code", "C711");
        cell1.put("type", "C");
        List<Map<String, Object>> cellList1 = new ArrayList<>();
        cellList1.add(cell1);
        Map<String, Object> module1 = new HashMap<>();
        module1.put("code", "M710");
        module1.put("childCodeList", cellList1);
        module1.put("type", "M");
        List<Map<String, Object>> moduleList1 = new ArrayList<>();
        moduleList1.add(module1);
        Map<String, Object> pack1 = new HashMap<>();
        pack1.put("code", "P700");
        pack1.put("childCodeList", moduleList1);
        pack1.put("type", "P");
        List<Map<String, Object>> repairList = new ArrayList<>();
        Map<String, Object> repair = new HashMap<>();
        repair.put("vin", "LNBSCB3F0DD130955");
        repair.put("repairDate", "2018-01-05");
        repair.put("oldCode", "P600");
        repair.put("newCode", "P700");
        repair.put("newCodeBean", pack1);
        repair.put("retireUnitCode", "123456789123412341");
        repair.put("retireUnitName", "维修厂");
        repair.put("whereaboutsCode", "123456789123412342");
        repair.put("whereaboutsName", "出库厂");
        repairList.add(repair);
        HttpResponse response = send(ip1 + "/bitnei/v1.0/battery/replaceBattery/replaceRepairBattery", repairList, vehicle_token, vehicle_key);
        String result = parsToMap(response, factory_key);
        System.out.println(result);
    }

    public static void createReplaceRetire() {
        List<Map<String, Object>> retireVehicleList = new ArrayList<>();
        Map<String, Object> retireVehicle = new HashMap<>();
        retireVehicle.put("code", "P500");
        retireVehicle.put("whereaboutsCode", "123456789123456789");
        retireVehicle.put("whereaboutsName", "电池厂");
        retireVehicle.put("retireDate", "2018-01-05");
        retireVehicle.put("batterySpecies", "P");
        retireVehicle.put("retireUnitCode", "123456789123123123");
        retireVehicle.put("retireUnitName", "退役厂商");
        retireVehicle.put("factoryType", "4");
        retireVehicle.put("batteryType", "A");
        retireVehicle.put("batteryWeight", "2.5");
        retireVehicleList.add(retireVehicle);
        HttpResponse response = send(ip1 + "/bitnei/v1.0/battery/sail/receiveRetiredOldReplace", retireVehicleList, vehicle_token, vehicle_key);
        String result = parsToMap(response, vehicle_key);
        System.out.println(result);
    }

    public static void createRetireFactory() {
        List<Map<String, Object>> retireVehicleList = new ArrayList<>();
        Map<String, Object> retireVehicle = new HashMap<>();
        retireVehicle.put("code", "P200");
        retireVehicle.put("whereaboutsCode", "123456789123456789");
        retireVehicle.put("whereaboutsName", "电池厂");
        retireVehicle.put("retireDate", "2018-01-05");
        retireVehicle.put("batterySpecies", "P");
        retireVehicle.put("retireUnitCode", "123456789123123123");
        retireVehicle.put("retireUnitName", "退役厂商");
        retireVehicle.put("factoryType", "2");
        retireVehicle.put("batteryType", "A");
        retireVehicle.put("batteryWeight", "2.5");
        retireVehicleList.add(retireVehicle);
        HttpResponse response = send(ip1 + "/bitnei/v1.0/battery/sail/receiveRetiredOld", retireVehicleList, factory_token, factory_key);
//        HttpResponse response = send("http://192.168.1.111:8993"+"/bitnei/v1.0/battery/sail/receiveRetiredOld", "[{\"vehModelName\":\"ZN6453V1YBEV\",\"vin\":\"LNBSCB3F0DD130955\",\"packCodeList\":[\"P100\"]}]", "C3kNIVJWfOxLkRDydrJXsA4ff6oMaTOP", "U2TohGfvuck0v5Xa");
        String result = parsToMap(response, factory_key);
        System.out.println(result);
    }

    public static HttpResponse send(String url, Object data, String token, String key) {
        try {
            Map<String, Object> requestMap = new HashMap<String, Object>();
            String requestMsg = new JsonSerializer().deep(true).serialize(data);
            String enStr = encrypt(requestMsg, key);
            requestMap.put("requestMsg", enStr);
            requestMap.put("timestamp", System.currentTimeMillis());
            String sign = byteArrayToHexString(encryptHMAC(enStr.getBytes(), key));
            requestMap.put("sign", sign);
            HttpResponse response = getRequest(url, token, requestMap).send().unzip().unzip();
            return response;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    public static String parsToMap(HttpResponse response, String key) {
        try {
            ObjectMapper mapper = new ObjectMapper();
            Map map = mapper.readValue(response.body(), Map.class);
            String result = "";
            if (isNotEmpty(map.get("data"))) {
                result = decrypt(map.get("data").toString(), key);
            } else {
                result = decrypt(map.get("msg").toString(), key);
            }
            return "code:" + map.get("code") + "" + result;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    public static String encrypt(String content, String password) {
        try {
            if (StringUtils.isEmpty(content)) {
                return "";
            }
            KeyGenerator kgen = KeyGenerator.getInstance("AESUtil");
            SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
            secureRandom.setSeed(password.getBytes());
            kgen.init(128, secureRandom);
            SecretKey secretKey = kgen.generateKey();
            byte[] enCodeFormat = secretKey.getEncoded();
            SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AESUtil");
            BASE64Encoder coder = new BASE64Encoder();
            coder.encode(enCodeFormat);
            Cipher cipher = Cipher.getInstance("AESUtil");
            byte[] byteContent = content.getBytes("utf-8");
            cipher.init(1, key);
            byte[] result = cipher.doFinal(byteContent);
            String str = Base64.encode(result);
            return str;
        } catch (NoSuchAlgorithmException var13) {
            var13.printStackTrace();
        } catch (NoSuchPaddingException var14) {
            var14.printStackTrace();
        } catch (InvalidKeyException var15) {
            var15.printStackTrace();
        } catch (UnsupportedEncodingException var16) {
            var16.printStackTrace();
        } catch (IllegalBlockSizeException var17) {
            var17.printStackTrace();
        } catch (BadPaddingException var18) {
            var18.printStackTrace();
        }
        return null;
    }

    public static boolean isNotEmpty(Object o) {
        if (o == null) {
            return false;
        }
        if ("".equals(FilterNull(o.toString()))) {
            return false;
        } else {
            return true;
        }
    }

    public static String FilterNull(Object o) {
        return o != null && !"null".equals(o.toString()) ? o.toString().trim() : "";
    }

    public static String decrypt(String str, String password) {
        try {
            byte[] content = Base64.decode(str);
            KeyGenerator kgen = KeyGenerator.getInstance("AESUtil");
            SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
            secureRandom.setSeed(password.getBytes());
            kgen.init(128, secureRandom);
            SecretKey secretKey = kgen.generateKey();
            byte[] enCodeFormat = secretKey.getEncoded();
            SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AESUtil");
            Cipher cipher = Cipher.getInstance("AESUtil");
            cipher.init(2, key);
            byte[] result = cipher.doFinal(content);
            return new String(result, "UTF-8");
        } catch (NoSuchAlgorithmException var10) {
            var10.printStackTrace();
        } catch (NoSuchPaddingException var11) {
            var11.printStackTrace();
        } catch (InvalidKeyException var12) {
            var12.printStackTrace();
        } catch (IllegalBlockSizeException var13) {
            var13.printStackTrace();
        } catch (BadPaddingException var14) {
            var14.printStackTrace();
        } catch (Exception var15) {
            var15.printStackTrace();
        }
        return "";
    }

    public static byte[] encryptHMAC(byte[] data, String key) throws Exception {
        SecretKey secretKey = new SecretKeySpec(key.getBytes(), "HmacMD5");
        Mac mac = Mac.getInstance(secretKey.getAlgorithm());
        mac.init(secretKey);
        return mac.doFinal(data);
    }

    public static String byteArrayToHexString(byte[] bytes) {
        StringBuilder sb = new StringBuilder(bytes.length * 2);
        byte[] var2 = bytes;
        int var3 = bytes.length;
        for (int var4 = 0; var4 < var3; ++var4) {
            byte aByte = var2[var4];
            int v = aByte & 255;
            if (v < 16) {
                sb.append('0');
            }
            sb.append(Integer.toHexString(v));
        }
        return sb.toString();
    }

    public static HttpRequest getRequest(String url, String accessToken, Map<String, Object> params) {
        HttpRequest request = HttpRequest.post(url);
        request.header("Authorization", "Bearer " + accessToken);
        request.header("Content-Type", "application/json; charset=utf-8");
        request.acceptEncoding("gzip");
        request.body((new JsonSerializer()).serialize(params));
//        System.out.println((new JsonSerializer()).serialize(params));
        return request;
    }

    public static void test() {
        try {
            StringBuffer data = new StringBuffer();
            String url = "http://evmam-tbrat.com:9000/bitnei/v1.0/battery/receiveVehicleOld";
            String token="L4TrJ4ZXjGbjcQ2EOUkiBBDP9A8ZtS/U";
            String key="fJqH4hYBwUf5hft5";
            Map<String, Object> requestMap = new HashMap<String, Object>();
            String enStr = encrypt(data.toString(), key);
            requestMap.put("requestMsg", "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");
            requestMap.put("timestamp", System.currentTimeMillis());
            String sign = byteArrayToHexString(encryptHMAC(enStr.getBytes(), key));
            requestMap.put("sign", sign);
            HttpResponse response = getRequest(url, token, requestMap).send();
            ObjectMapper mapper = new ObjectMapper();
            Map map = mapper.readValue(response.body(), Map.class);
            String result = "";
            if (isNotEmpty(map.get("data"))) {
                result = decrypt(map.get("data").toString(), key);
            } else {
                result = decrypt(map.get("msg").toString(), key);
            }
            System.out.println(map.get("code") + "" + result);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void getBatteryIsImport() {
        List<String> codeList = new ArrayList<>();
        codeList.add("P001");
        HttpResponse response = send(ip1 + "/bitnei/v1.0/battery/vehicle/getBatteryIsImport", codeList, vehicle_token, vehicle_key);
        String result = parsToMap(response, vehicle_key);
        System.out.println(result);
    }

    public static void getBatteryIsBindingsVIN() {
        List<Map<String, Object>> codeList = new ArrayList<>();
        Map<String, Object> map = new HashMap<>();
        map.put("code", "P001");
        map.put("type", "P");
        map.put("vin", "LNBSCB3F0DD130955");
        codeList.add(map);
        HttpResponse response = send(ip1 + "/bitnei/v1.0/battery/vehicle/getBatteryIsBindingsVIN", codeList, vehicle_token, vehicle_key);
        String result = parsToMap(response, vehicle_key);
        System.out.println(result);
    }

    public static String createVehiclePackRandom(String vehModelName, int packNum, int vehicleNum, String key) {
//        Random rand = new Random();
//        IntStream.range(0,10).forEach(value -> System.out.println(RandomStringUtils.random(11,"QWERTYUIOP123456789")));
        List<Map<String, Object>> vinList = new ArrayList<>();
//        Calendar now = Calendar.getInstance();
//        int i1=(now.get(Calendar.HOUR_OF_DAY));
//        int i2=now.get(Calendar.MINUTE);
//        int i3=now.get(Calendar.SECOND);
//        Long l4=now.getTimeInMillis();
//        String vin="VIN"+i1+i2+i3+l4;
        Date d = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("HHmmssSSS");
        String dateNowStr = sdf.format(d);
        String vin = "VIN" + dateNowStr + "0";
        for (int i = 0; i < vehicleNum; i++) {
            List<String> packList = new ArrayList<>();
            for (int j = 0; j < packNum; j++) {
                String packId = UUID.randomUUID().toString().replaceAll("-", "");
                packList.add(packId);
            }
            Map<String, Object> vinMap = new HashMap<>();
//            vinMap.put("vin","VINVINVIN"+rand.nextInt(100000000));
            if (i < 10) {
                vinMap.put("vin", vin + "000" + i);
            } else if (i >= 10 && i < 100) {
                vinMap.put("vin", vin + "00" + i);
            } else if (i >= 100 && i < 1000) {
                vinMap.put("vin", vin + "0" + i);
            } else if (i >= 1000 && i < 10000) {
                vinMap.put("vin", vin + "" + i);
            }
            vinMap.put("vehModelName", vehModelName);
            vinMap.put("packCodeList", packList);
            vinMap.put("systemCode", "S001");
            vinMap.put("offlineProductionTime", "2018-01-01 00:00:00");
            vinMap.put("vehicleBrand", "奔驰");
            vinMap.put("vehicleName", "奔驰");
            vinMap.put("vehicleType", "1");
            vinList.add(vinMap);
        }
        Map<String, Object> vehicleMap = new HashMap<>();
        vehicleMap.put("vinList", vinList);
        String requestMsg = new JsonSerializer().deep(true).serialize(vehicleMap);
        String enStr = encrypt(requestMsg, key);
        Map<String, Object> requestMap = new HashMap<String, Object>();
        requestMap.put("requestMsg", enStr);
        return new JsonSerializer().serialize(requestMap);
    }

    public static String createSaleRandom(String dateNowStr, int vehicleNum, String key) {
        List<Map<String, Object>> vehicleList = new ArrayList<>();
        String vin = "VIN" + dateNowStr + "0";
        for (int i = 0; i < vehicleNum; i++) {
            Map<String, Object> vehicle = new HashMap<>();
            if (i < 10) {
                vehicle.put("vin", vin + "000" + i);
                vehicle.put("licensePlate", "京BZ"+ "000" + i);
            } else if (i >= 10 && i < 100) {
                vehicle.put("vin", vin + "00" + i);
                vehicle.put("licensePlate", "京BZ"+ "00" + i);
            } else if (i >= 100 && i < 1000) {
                vehicle.put("vin", vin + "0" + i);
                vehicle.put("licensePlate", "京BZ"+ "0" + i);
            } else if (i >= 1000 && i < 10000) {
                vehicle.put("vin", vin + "" + i);
                vehicle.put("licensePlate", "京BZ"+ "" + i);
            }
            vehicle.put("vehTypeName", "111808");
            vehicle.put("saleTime", "2018-01-05");
            vehicle.put("saleArea", "北京市昌平区");
            vehicle.put("epname", "吉利汽车");
            vehicle.put("epaddress", "北京市");
            vehicle.put("epcode", "123456789123456789");
            vehicleList.add(vehicle);
        }
        String requestMsg = new JsonSerializer().deep(true).serialize(vehicleList);
        String enStr = encrypt(requestMsg, key);
        Map<String, Object> requestMap = new HashMap<String, Object>();
        requestMap.put("requestMsg", enStr);
        return new JsonSerializer().serialize(requestMap);
    }

    public static String createChassisRandom(String vehModelName, int packNum, int vehicleNum, String key) {
        List<Map<String, Object>> vinList = new ArrayList<>();
        Date d = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("HHmmssSSS");
        String dateNowStr = sdf.format(d);
        String vin = "VIN" + dateNowStr + "0";
        for (int i = 0; i < vehicleNum; i++) {
            List<String> packList = new ArrayList<>();
            for (int j = 0; j < packNum; j++) {
                String packId = UUID.randomUUID().toString().replaceAll("-", "");
                packList.add(packId);
            }
            Map<String, Object> vinMap = new HashMap<>();
            if (i < 10) {
                vinMap.put("vin", vin + "000" + i);
            } else if (i >= 10 && i < 100) {
                vinMap.put("vin", vin + "00" + i);
            } else if (i >= 100 && i < 1000) {
                vinMap.put("vin", vin + "0" + i);
            } else if (i >= 1000 && i < 10000) {
                vinMap.put("vin", vin + "" + i);
            }
            vinMap.put("vehModelName", vehModelName);
            vinMap.put("packCodeList", packList);
            vinList.add(vinMap);
        }
        String requestMsg = new JsonSerializer().deep(true).serialize(vinList);
        String enStr = encrypt(requestMsg, key);
        Map<String, Object> requestMap = new HashMap<String, Object>();
        requestMap.put("requestMsg", enStr);
        return new JsonSerializer().serialize(requestMap);
    }

    public static String createData(String data, String key) {
        String enStr = encrypt(data, key);
        Map<String, Object> requestMap = new HashMap<String, Object>();
        requestMap.put("requestMsg", enStr);
        return new JsonSerializer().serialize(requestMap);
    }


    public static void testReplace() {
        try {

            //数据解密
            //String testStr="fEX16QP5vAQ+ANa1Zh4ODcL5QHwYN8RhAlXBfFv1REySZoQ4j7lDFpPruryszzpv";
            //String data=decrypt(testStr,key);
            //System.out.println(data);


            //String data=new JsonSerializer().deep(true).serialize(packList);
            String data="[\n" +
                    "\t{\n" +
                    "\t\t\"code\": \"071PE01000000192D0000039\",\n" +
                    "\t\t\"replaceUnitName\": \"武汉蔚来能源有限公司\",\n" +
                    "\t\t\"replaceUnitCode\": \"91420100MA4KUHJ97R\",\n" +
                    "\t\t\"moduleList\": [\n" +
                    "\t\t\t{\n" +
                    "\t\t\t\t\"code\": \"001MEA100000018BG1067977\",\n" +
                    "\t\t\t\t\"cellCodeSize\": \"6\",\n" +
                    "\t\t\t\t\"cellList\": [\n" +
                    "\t\t\t\t\t\"001CE1400000018B23308959\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23310017\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23310010\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23310026\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23309906\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23311818\"\n" +
                    "\t\t\t\t]\n" +
                    "\t\t\t},\n" +
                    "\t\t\t{\n" +
                    "\t\t\t\t\"code\": \"001MEA100000018BG1068327\",\n" +
                    "\t\t\t\t\"cellCodeSize\": \"6\",\n" +
                    "\t\t\t\t\"cellList\": [\n" +
                    "\t\t\t\t\t\"001CE1400000018AY3311488\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33304648\",\n" +
                    "\t\t\t\t\t\"001CE1400000018AY3309076\",\n" +
                    "\t\t\t\t\t\"001CE1400000018AY3311493\",\n" +
                    "\t\t\t\t\t\"001CE1400000018AY3311320\",\n" +
                    "\t\t\t\t\t\"001CE1400000018AY3309088\"\n" +
                    "\t\t\t\t]\n" +
                    "\t\t\t},\n" +
                    "\t\t\t{\n" +
                    "\t\t\t\t\"code\": \"001MEA100000018BG1068281\",\n" +
                    "\t\t\t\t\"cellCodeSize\": \"6\",\n" +
                    "\t\t\t\t\"cellList\": [\n" +
                    "\t\t\t\t\t\"001CE1400000018B33311477\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33311475\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33309106\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B13307952\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33311471\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33111615\"\n" +
                    "\t\t\t\t]\n" +
                    "\t\t\t},\n" +
                    "\t\t\t{\n" +
                    "\t\t\t\t\"code\": \"001MEA100000018BG1067989\",\n" +
                    "\t\t\t\t\"cellCodeSize\": \"6\",\n" +
                    "\t\t\t\t\"cellList\": [\n" +
                    "\t\t\t\t\t\"001CE1400000018B23311370\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23308935\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23306776\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23306774\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23311369\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23311364\"\n" +
                    "\t\t\t\t]\n" +
                    "\t\t\t},\n" +
                    "\t\t\t{\n" +
                    "\t\t\t\t\"code\": \"001MEA100000018BF1066862\",\n" +
                    "\t\t\t\t\"cellCodeSize\": \"6\",\n" +
                    "\t\t\t\t\"cellList\": [\n" +
                    "\t\t\t\t\t\"001CE1400000018B33309284\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33309931\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33111919\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33111653\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33310531\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33309951\"\n" +
                    "\t\t\t\t]\n" +
                    "\t\t\t},\n" +
                    "\t\t\t{\n" +
                    "\t\t\t\t\"code\": \"001MEA100000018BG1067889\",\n" +
                    "\t\t\t\t\"cellCodeSize\": \"6\",\n" +
                    "\t\t\t\t\"cellList\": [\n" +
                    "\t\t\t\t\t\"001CE1400000018B23311570\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23311563\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23311572\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33300618\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33300549\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23309978\"\n" +
                    "\t\t\t\t]\n" +
                    "\t\t\t},\n" +
                    "\t\t\t{\n" +
                    "\t\t\t\t\"code\": \"001MEA100000018BG1067993\",\n" +
                    "\t\t\t\t\"cellCodeSize\": \"6\",\n" +
                    "\t\t\t\t\"cellList\": [\n" +
                    "\t\t\t\t\t\"001CE1400000018A03305156\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23311357\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23311039\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23311359\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23310636\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23310413\"\n" +
                    "\t\t\t\t]\n" +
                    "\t\t\t},\n" +
                    "\t\t\t{\n" +
                    "\t\t\t\t\"code\": \"001MEA100000018BG1068369\",\n" +
                    "\t\t\t\t\"cellCodeSize\": \"6\",\n" +
                    "\t\t\t\t\"cellList\": [\n" +
                    "\t\t\t\t\t\"001CE1400000018B33307490\",\n" +
                    "\t\t\t\t\t\"001CE1400000018AY3309814\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B13306390\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33305875\",\n" +
                    "\t\t\t\t\t\"001CE1400000018AY3309575\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33306499\"\n" +
                    "\t\t\t\t]\n" +
                    "\t\t\t},\n" +
                    "\t\t\t{\n" +
                    "\t\t\t\t\"code\": \"001MEA100000018BF1067602\",\n" +
                    "\t\t\t\t\"cellCodeSize\": \"6\",\n" +
                    "\t\t\t\t\"cellList\": [\n" +
                    "\t\t\t\t\t\"001CE1400000018B43301449\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23302397\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23302445\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B43301457\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B43301441\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23302409\"\n" +
                    "\t\t\t\t]\n" +
                    "\t\t\t},\n" +
                    "\t\t\t{\n" +
                    "\t\t\t\t\"code\": \"001MEA100000018BG1068356\",\n" +
                    "\t\t\t\t\"cellCodeSize\": \"6\",\n" +
                    "\t\t\t\t\"cellList\": [\n" +
                    "\t\t\t\t\t\"001CE1400000018B33305853\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33305803\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33307729\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33306202\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33305836\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33307527\"\n" +
                    "\t\t\t\t]\n" +
                    "\t\t\t},\n" +
                    "\t\t\t{\n" +
                    "\t\t\t\t\"code\": \"001MEA100000018BG1067990\",\n" +
                    "\t\t\t\t\"cellCodeSize\": \"6\",\n" +
                    "\t\t\t\t\"cellList\": [\n" +
                    "\t\t\t\t\t\"001CE1400000018B23311349\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23311365\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23307713\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23308937\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23306440\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23311348\"\n" +
                    "\t\t\t\t]\n" +
                    "\t\t\t},\n" +
                    "\t\t\t{\n" +
                    "\t\t\t\t\"code\": \"001MEA100000018BG1068383\",\n" +
                    "\t\t\t\t\"cellCodeSize\": \"6\",\n" +
                    "\t\t\t\t\"cellList\": [\n" +
                    "\t\t\t\t\t\"001CE1400000018A03302587\",\n" +
                    "\t\t\t\t\t\"001CE1400000018AY3311661\",\n" +
                    "\t\t\t\t\t\"001CE1400000018AY3308990\",\n" +
                    "\t\t\t\t\t\"001CE1400000018AY3309573\",\n" +
                    "\t\t\t\t\t\"001CE1400000018AY3309006\",\n" +
                    "\t\t\t\t\t\"001CE1400000018A03300688\"\n" +
                    "\t\t\t\t]\n" +
                    "\t\t\t},\n" +
                    "\t\t\t{\n" +
                    "\t\t\t\t\"code\": \"001MEA100000018BG1068023\",\n" +
                    "\t\t\t\t\"cellCodeSize\": \"6\",\n" +
                    "\t\t\t\t\"cellList\": [\n" +
                    "\t\t\t\t\t\"001CE1400000018B13313067\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23309813\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23309868\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23307652\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23309814\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23307677\"\n" +
                    "\t\t\t\t]\n" +
                    "\t\t\t},\n" +
                    "\t\t\t{\n" +
                    "\t\t\t\t\"code\": \"001MEA100000018BG1068037\",\n" +
                    "\t\t\t\t\"cellCodeSize\": \"6\",\n" +
                    "\t\t\t\t\"cellList\": [\n" +
                    "\t\t\t\t\t\"001CE1400000018B23309109\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23302081\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23310066\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23309111\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23308744\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23307686\"\n" +
                    "\t\t\t\t]\n" +
                    "\t\t\t},\n" +
                    "\t\t\t{\n" +
                    "\t\t\t\t\"code\": \"001MEA100000018BG1068337\",\n" +
                    "\t\t\t\t\"cellCodeSize\": \"6\",\n" +
                    "\t\t\t\t\"cellList\": [\n" +
                    "\t\t\t\t\t\"001CE1400000018AY3309796\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33306075\",\n" +
                    "\t\t\t\t\t\"001CE1400000018AY3309791\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33306176\",\n" +
                    "\t\t\t\t\t\"001CE1400000018AY3311642\",\n" +
                    "\t\t\t\t\t\"001CE1400000018AY3309069\"\n" +
                    "\t\t\t\t]\n" +
                    "\t\t\t},\n" +
                    "\t\t\t{\n" +
                    "\t\t\t\t\"code\": \"001MEA100000018BG1067954\",\n" +
                    "\t\t\t\t\"cellCodeSize\": \"6\",\n" +
                    "\t\t\t\t\"cellList\": [\n" +
                    "\t\t\t\t\t\"001CE1400000018AY3301170\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23305361\",\n" +
                    "\t\t\t\t\t\"001CE1400000018AY3301152\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23307386\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33300366\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23307387\"\n" +
                    "\t\t\t\t]\n" +
                    "\t\t\t},\n" +
                    "\t\t\t{\n" +
                    "\t\t\t\t\"code\": \"001MEA100000018BG1068340\",\n" +
                    "\t\t\t\t\"cellCodeSize\": \"6\",\n" +
                    "\t\t\t\t\"cellList\": [\n" +
                    "\t\t\t\t\t\"001CE1400000018AY3311495\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33306178\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33306184\",\n" +
                    "\t\t\t\t\t\"001CE1400000018AY3309537\",\n" +
                    "\t\t\t\t\t\"001CE1400000018AY3309085\",\n" +
                    "\t\t\t\t\t\"001CE1400000018AY3311360\"\n" +
                    "\t\t\t\t]\n" +
                    "\t\t\t},\n" +
                    "\t\t\t{\n" +
                    "\t\t\t\t\"code\": \"001MEA100000018BG1068044\",\n" +
                    "\t\t\t\t\"cellCodeSize\": \"6\",\n" +
                    "\t\t\t\t\"cellList\": [\n" +
                    "\t\t\t\t\t\"001CE1400000018B43301337\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33310968\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B43301342\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33310502\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33310977\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33310969\"\n" +
                    "\t\t\t\t]\n" +
                    "\t\t\t},\n" +
                    "\t\t\t{\n" +
                    "\t\t\t\t\"code\": \"001MEA100000018BF1067295\",\n" +
                    "\t\t\t\t\"cellCodeSize\": \"6\",\n" +
                    "\t\t\t\t\"cellList\": [\n" +
                    "\t\t\t\t\t\"001CE1400000018B32600591\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B32603868\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B32604046\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B32603859\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B32602227\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B32604042\"\n" +
                    "\t\t\t\t]\n" +
                    "\t\t\t},\n" +
                    "\t\t\t{\n" +
                    "\t\t\t\t\"code\": \"001MEA100000018BG1067875\",\n" +
                    "\t\t\t\t\"cellCodeSize\": \"6\",\n" +
                    "\t\t\t\t\"cellList\": [\n" +
                    "\t\t\t\t\t\"001CE1400000018B33300517\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33300508\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33300512\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33300475\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33300472\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23309145\"\n" +
                    "\t\t\t\t]\n" +
                    "\t\t\t},\n" +
                    "\t\t\t{\n" +
                    "\t\t\t\t\"code\": \"001MEA100000018BG1067949\",\n" +
                    "\t\t\t\t\"cellCodeSize\": \"6\",\n" +
                    "\t\t\t\t\"cellList\": [\n" +
                    "\t\t\t\t\t\"001CE1400000018B23311753\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23311691\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23311707\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23311329\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23309661\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23311670\"\n" +
                    "\t\t\t\t]\n" +
                    "\t\t\t},\n" +
                    "\t\t\t{\n" +
                    "\t\t\t\t\"code\": \"001MEA100000018BG1067927\",\n" +
                    "\t\t\t\t\"cellCodeSize\": \"6\",\n" +
                    "\t\t\t\t\"cellList\": [\n" +
                    "\t\t\t\t\t\"001CE1400000018A03305659\",\n" +
                    "\t\t\t\t\t\"001CE1400000018A03304619\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23311027\",\n" +
                    "\t\t\t\t\t\"001CE1400000018AY3107302\",\n" +
                    "\t\t\t\t\t\"001CE1400000018AY3105522\",\n" +
                    "\t\t\t\t\t\"001CE1400000018A03307775\"\n" +
                    "\t\t\t\t]\n" +
                    "\t\t\t},\n" +
                    "\t\t\t{\n" +
                    "\t\t\t\t\"code\": \"001MEA100000018BG1067988\",\n" +
                    "\t\t\t\t\"cellCodeSize\": \"6\",\n" +
                    "\t\t\t\t\"cellList\": [\n" +
                    "\t\t\t\t\t\"001CE1400000018B23311032\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23310539\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23311037\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23309694\",\n" +
                    "\t\t\t\t\t\"001CE1400000018A03305225\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23311033\"\n" +
                    "\t\t\t\t]\n" +
                    "\t\t\t},\n" +
                    "\t\t\t{\n" +
                    "\t\t\t\t\"code\": \"001MEA100000018BG1068385\",\n" +
                    "\t\t\t\t\"cellCodeSize\": \"6\",\n" +
                    "\t\t\t\t\"cellList\": [\n" +
                    "\t\t\t\t\t\"001CE1400000018B23300500\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23300511\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B13304423\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B13308716\",\n" +
                    "\t\t\t\t\t\"001CE1400000018AY3309781\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33306675\"\n" +
                    "\t\t\t\t]\n" +
                    "\t\t\t},\n" +
                    "\t\t\t{\n" +
                    "\t\t\t\t\"code\": \"001MEA100000018BG1068345\",\n" +
                    "\t\t\t\t\"cellCodeSize\": \"6\",\n" +
                    "\t\t\t\t\"cellList\": [\n" +
                    "\t\t\t\t\t\"001CE1400000018B33307732\",\n" +
                    "\t\t\t\t\t\"001CE1400000018AY3309073\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33307727\",\n" +
                    "\t\t\t\t\t\"001CE1400000018AY3311674\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33306068\",\n" +
                    "\t\t\t\t\t\"001CE1400000018AY3309194\"\n" +
                    "\t\t\t\t]\n" +
                    "\t\t\t},\n" +
                    "\t\t\t{\n" +
                    "\t\t\t\t\"code\": \"001MEA100000018BF1067662\",\n" +
                    "\t\t\t\t\"cellCodeSize\": \"6\",\n" +
                    "\t\t\t\t\"cellList\": [\n" +
                    "\t\t\t\t\t\"001CE1400000018B43301385\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B43301802\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B43302456\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B43301376\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B43301801\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B43302431\"\n" +
                    "\t\t\t\t]\n" +
                    "\t\t\t},\n" +
                    "\t\t\t{\n" +
                    "\t\t\t\t\"code\": \"001MEA100000018BG1068344\",\n" +
                    "\t\t\t\t\"cellCodeSize\": \"6\",\n" +
                    "\t\t\t\t\"cellList\": [\n" +
                    "\t\t\t\t\t\"001CE1400000018B33307730\",\n" +
                    "\t\t\t\t\t\"001CE1400000018AY3311664\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33307738\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33307733\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33106761\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33307442\"\n" +
                    "\t\t\t\t]\n" +
                    "\t\t\t},\n" +
                    "\t\t\t{\n" +
                    "\t\t\t\t\"code\": \"001MEA100000018BG1067671\",\n" +
                    "\t\t\t\t\"cellCodeSize\": \"6\",\n" +
                    "\t\t\t\t\"cellList\": [\n" +
                    "\t\t\t\t\t\"001CE1400000018B43300880\",\n" +
                    "\t\t\t\t\t\"001CE1400000018A03309564\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B43300539\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B43300675\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B43300548\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B43300551\"\n" +
                    "\t\t\t\t]\n" +
                    "\t\t\t},\n" +
                    "\t\t\t{\n" +
                    "\t\t\t\t\"code\": \"001MEA100000018BG1067975\",\n" +
                    "\t\t\t\t\"cellCodeSize\": \"6\",\n" +
                    "\t\t\t\t\"cellList\": [\n" +
                    "\t\t\t\t\t\"001CE1400000018B23311813\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23310033\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33300368\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23309178\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23309179\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23303010\"\n" +
                    "\t\t\t\t]\n" +
                    "\t\t\t},\n" +
                    "\t\t\t{\n" +
                    "\t\t\t\t\"code\": \"001MEA100000018BF1067601\",\n" +
                    "\t\t\t\t\"cellCodeSize\": \"6\",\n" +
                    "\t\t\t\t\"cellList\": [\n" +
                    "\t\t\t\t\t\"001CE1400000018B43301443\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B13105296\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B43302500\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B43301448\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23302401\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23302389\"\n" +
                    "\t\t\t\t]\n" +
                    "\t\t\t},\n" +
                    "\t\t\t{\n" +
                    "\t\t\t\t\"code\": \"001MEA100000018BG1068005\",\n" +
                    "\t\t\t\t\"cellCodeSize\": \"6\",\n" +
                    "\t\t\t\t\"cellList\": [\n" +
                    "\t\t\t\t\t\"001CE1400000018B23308716\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23308720\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23309278\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23309275\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23310297\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23306770\"\n" +
                    "\t\t\t\t]\n" +
                    "\t\t\t},\n" +
                    "\t\t\t{\n" +
                    "\t\t\t\t\"code\": \"001MEA100000018BG1067957\",\n" +
                    "\t\t\t\t\"cellCodeSize\": \"6\",\n" +
                    "\t\t\t\t\"cellList\": [\n" +
                    "\t\t\t\t\t\"001CE1400000018B23311816\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23309182\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23311801\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23311809\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B33300367\",\n" +
                    "\t\t\t\t\t\"001CE1400000018B23307402\"\n" +
                    "\t\t\t\t]\n" +
                    "\t\t\t}\n" +
                    "\t\t]\n" +
                    "\t}\n" +
                    "]";
            String token = "C3kNIVJWfOxLkRDydrJXsA4ff6oMaTOP";
            String key = "U2TohGfvuck0v5Xa";
            String url = "http://127.0.0.1:8993/bitnei/v1.0/battery/replaceBattery/batteryInStorage";
            //String url = "http://p-awsbj-tsp-baty-trace-987963663.cn-north-1.elb.amazonaws.com.cn:8080/bitnei/v1.0/battery/replaceBattery/batteryInStorage";
            //String url = "http://10.28.32.204:8080/bitnei/v1.0/battery/vehicle/receiveVehicleProduce";


            Map<String, Object> requestMap = new HashMap<String, Object>();
            String enStr = encrypt(data, key);
            requestMap.put("requestMsg", enStr);
            String sign = byteArrayToHexString(encryptHMAC(enStr.getBytes(), key));
            requestMap.put("sign", sign);

            //for(int i=0;i<100;i++){
            requestMap.put("timestamp", System.currentTimeMillis());
            HttpResponse response = getRequest(url, token, requestMap).send().unzip().unzip();
            ObjectMapper mapper = new ObjectMapper();
            Map map = mapper.readValue(response.body(), Map.class);
            String result = "";
            if (isNotEmpty(map.get("data"))) {
                result = decrypt(map.get("data").toString(), key);
            } else {
                result = decrypt(map.get("msg").toString(), key);
            }
            System.out.println(map.get("code") + "" + result);
            //  }


        } catch (Exception e) {
            e.printStackTrace();
        }
    }



}
